package com.ruoyi.system.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商品评价对象 t_product_reviews
 *
 * @author ruoyi
 * @date 2025-07-08
 */
public class TProductReviews extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 评价ID
     */
    private Long id;

    /**
     * 商品ID
     */
    @Excel(name = "商品ID")
    private Long productId;

    /**
     * 用户ID
     */
    @Excel(name = "用户ID")
    private Long userId;

    /**
     * 订单ID
     */
    @Excel(name = "订单ID")
    private Long orderId;

    /**
     * 评分(1-5分)
     */
    @Excel(name = "评分(1-5分)")
    private Integer rating;

    private List<Integer> ratings; // 多值查询rating

    /**
     * 评价标题
     */
    @Excel(name = "评价标题")
    private String title;

    /**
     * 评价内容
     */
    @Excel(name = "评价内容")
    private String content;

    /**
     * 评价图片，多个图片用逗号分隔
     */
    @Excel(name = "评价图片，多个图片用逗号分隔")
    private String images;

    /**
     * 是否匿名评价
     */
    @Excel(name = "是否匿名评价")
    private Integer isAnonymous;

    /**
     * 评价状态
     */
    @Excel(name = "评价状态")
    private Integer status;

    /**
     * 有用点赞数
     */
    @Excel(name = "有用点赞数")
    private Long likeCount;

    /**
     * 商家回复内容
     */
    @Excel(name = "商家回复内容")
    private String replyContent;

    /**
     * 商家回复时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "商家回复时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date replyTime;

    /**
     * 删除标志
     */
    private String delFlag;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public Long getProductId() {
        return productId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setRating(Integer rating) {
        this.rating = rating;
    }

    public List<Integer> getRatings() {
        return ratings;
    }

    public void setRatings(List<Integer> ratings) {
        this.ratings = ratings;
    }

    @Override
    public String toString() {
        return "TProductReviews{" +
                "id=" + id +
                ", productId=" + productId +
                ", userId=" + userId +
                ", orderId=" + orderId +
                ", rating=" + rating +
                ", ratings=" + ratings +
                ", title='" + title + '\'' +
                ", content='" + content + '\'' +
                ", images='" + images + '\'' +
                ", isAnonymous=" + isAnonymous +
                ", status=" + status +
                ", likeCount=" + likeCount +
                ", replyContent='" + replyContent + '\'' +
                ", replyTime=" + replyTime +
                ", delFlag='" + delFlag + '\'' +
                '}';
    }

    public Integer getRating() {
        return rating;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getTitle() {
        return title;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getContent() {
        return content;
    }

    public void setImages(String images) {
        this.images = images;
    }

    public String getImages() {
        return images;
    }

    public void setIsAnonymous(Integer isAnonymous) {
        this.isAnonymous = isAnonymous;
    }

    public Integer getIsAnonymous() {
        return isAnonymous;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getStatus() {
        return status;
    }

    public void setLikeCount(Long likeCount) {
        this.likeCount = likeCount;
    }

    public Long getLikeCount() {
        return likeCount;
    }

    public void setReplyContent(String replyContent) {
        this.replyContent = replyContent;
    }

    public String getReplyContent() {
        return replyContent;
    }

    public void setReplyTime(Date replyTime) {
        this.replyTime = replyTime;
    }

    public Date getReplyTime() {
        return replyTime;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

}
